package com.ruoyi.project.system.partymember.domain;

import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

/**
 * 党员信息对象 party_member
 * 
 * @author ruoyi
 * @date 2023-07-15
 */
public class PartyMember extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Excel(name = "主键")
    private Long id;

    /** 关联用户ID */
    @Excel(name = "关联用户ID")
    private Long userId;

    /** 党员编号 */
    @Excel(name = "党员编号")
    private String partyNo;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 性别（0-男，1-女） */
    @Excel(name = "性别", readConverterExp = "0=男,1=女")
    private String gender;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /** 民族 */
    @Excel(name = "民族")
    private String nation;

    /** 籍贯 */
    @Excel(name = "籍贯")
    private String nativePlace;

    /** 政治面貌 */
    @Excel(name = "政治面貌")
    private String politicalStatus;

    /** 入党日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入党日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date joinPartyDate;

    /** 转正日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "转正日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date conversionDate;

    /** 所属部门ID */
    @Excel(name = "所属部门ID")
    private Long deptId;
    
    /** 所属部门名称 */
    @Excel(name = "所属部门名称")
    private String deptName;

    /** 所属班级ID（学生党员） */
    @Excel(name = "所属班级ID")
    private String classId;

    /** 身份类型（1-教师，2-学生，3-职工） */
    @Excel(name = "身份类型", readConverterExp = "1=教师,2=学生,3=职工")
    private String identityType;

    /** 党内职务 */
    @Excel(name = "党内职务")
    private String partyPost;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 入党申请书路径 */
    @Excel(name = "入党申请书路径")
    private String applicationPath;

    /** 状态（0-正常，1-转出，2-休学，3-退休） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=转出,2=休学,3=退休")
    private String status;

    /** 是否是优秀党员 */
    @Excel(name = "是否是优秀党员", readConverterExp = "0=否,1=是")
    private String isExcellent;

    /** 删除标志（0-未删除，1-已删除） */
    private String delFlag;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setPartyNo(String partyNo) 
    {
        this.partyNo = partyNo;
    }

    public String getPartyNo() 
    {
        return partyNo;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }
    public void setBirthDate(Date birthDate) 
    {
        this.birthDate = birthDate;
    }

    public Date getBirthDate() 
    {
        return birthDate;
    }
    public void setNation(String nation) 
    {
        this.nation = nation;
    }

    public String getNation() 
    {
        return nation;
    }
    public void setNativePlace(String nativePlace) 
    {
        this.nativePlace = nativePlace;
    }

    public String getNativePlace() 
    {
        return nativePlace;
    }
    public void setPoliticalStatus(String politicalStatus) 
    {
        this.politicalStatus = politicalStatus;
    }

    public String getPoliticalStatus() 
    {
        return politicalStatus;
    }
    public void setJoinPartyDate(Date joinPartyDate) 
    {
        this.joinPartyDate = joinPartyDate;
    }

    public Date getJoinPartyDate() 
    {
        return joinPartyDate;
    }
    public void setConversionDate(Date conversionDate) 
    {
        this.conversionDate = conversionDate;
    }

    public Date getConversionDate() 
    {
        return conversionDate;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setDeptName(String deptName) 
    {
        this.deptName = deptName;
    }

    public String getDeptName() 
    {
        return deptName;
    }
    public void setClassId(String classId) 
    {
        this.classId = classId;
    }

    public String getClassId() 
    {
        return classId;
    }
    public void setIdentityType(String identityType) 
    {
        this.identityType = identityType;
    }

    public String getIdentityType() 
    {
        return identityType;
    }
    public void setPartyPost(String partyPost) 
    {
        this.partyPost = partyPost;
    }

    public String getPartyPost() 
    {
        return partyPost;
    }
    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setApplicationPath(String applicationPath) 
    {
        this.applicationPath = applicationPath;
    }

    public String getApplicationPath() 
    {
        return applicationPath;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public String getIsExcellent() {
        return isExcellent;
    }

    public void setIsExcellent(String isExcellent) {
        this.isExcellent = isExcellent;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("partyNo", getPartyNo())
            .append("name", getName())
            .append("gender", getGender())
            .append("birthDate", getBirthDate())
            .append("nation", getNation())
            .append("nativePlace", getNativePlace())
            .append("politicalStatus", getPoliticalStatus())
            .append("joinPartyDate", getJoinPartyDate())
            .append("conversionDate", getConversionDate())
            .append("deptId", getDeptId())
            .append("classId", getClassId())
            .append("identityType", getIdentityType())
            .append("partyPost", getPartyPost())
            .append("contactPhone", getContactPhone())
            .append("email", getEmail())
            .append("applicationPath", getApplicationPath())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .append("remark", getRemark())
            .toString();
    }
}